前面讲了 C# 的中特殊字符,这篇就来讲讲 C# 中的字符串转义吧。详细的转义序列表,可以查看微软官网(https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/strings/) ,这篇文章就例举了一些常用的或者有意思的。
我们首先要讲的就是 \r 和 \n.
\r 表示回车,\n 表示换行,有人会奇怪,这两个有什么区别吗?它们是不一样的。在 Windows 中写过 shell 脚本的人都知道,使用 Windows 的文本编辑器写出来的 shell 脚本是没办法直接在 Linux 上面运行的,原因就是因为这两个系统关于行尾符的定义不一样。
在讲它们之间的区别之前,我们先回顾一下它们的来历。计算机还没有出现之前,有一种叫做电传打字机的设备,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,在这0.2秒里面,传过来的字符将会丢失。 于是,人们就在每行后面加两个字符表示结束换行。一个叫做“回车”,告诉打字机把打印头定位在左边开始位置;另一个叫做“换行”,告诉打字机把纸向下移一行。这个概念也应用到了计算机上,由于早期计算机存储资源很昂贵,所以在是否使用两个字符,还是使用一个字符上面产生了分歧,在 Unix(Linux) 中,行尾符就使用了 \n,在 Windows 中,行尾符使用了 \r\n。
下面我们来看一个示例:
using System;
namespace ConsoleApp26
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hi, I am Tom. \rNice to meet you!");
}
}
}
运行结果:回车符前面的被内容被覆盖了。
Nice to meet you!
using System;
namespace ConsoleApp26
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hi, I am Tom. \nNice to meet you!");
}
}
}
运行结果:
Hi, I am Tom.
Nice to meet you!
下面我们来看看 \t 水平制表符(相当于按一次 tab 键):
using System;
namespace ConsoleApp26
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hi, I am Tom. \tNice to meet you!");
}
}
}
运行结果:
Hi, I am Tom. Nice to meet you!